[INFO] cloning repository https://github.com/Crypec/Stegi
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Crypec/Stegi" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCrypec%2FStegi", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCrypec%2FStegi'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 23907cdaacdd555e28098ff168ff0af51192929c
[INFO] building Crypec/Stegi against master#ff34b919075f35a1787659e9c448a34b06bab8de for issue-85264
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCrypec%2FStegi" "/workspace/builds/worker-4/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/Crypec/Stegi on toolchain ff34b919075f35a1787659e9c448a34b06bab8de
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+ff34b919075f35a1787659e9c448a34b06bab8de" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/Crypec/Stegi
[INFO] finished tweaking git repo https://github.com/Crypec/Stegi
[INFO] tweaked toml for git repo https://github.com/Crypec/Stegi written to /workspace/builds/worker-4/source/Cargo.toml
[INFO] crate git repo https://github.com/Crypec/Stegi already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+ff34b919075f35a1787659e9c448a34b06bab8de" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+ff34b919075f35a1787659e9c448a34b06bab8de" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c9d828fee566d2d409fa7f83536fc9578dafda206054661c589df78d30664a3d
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "c9d828fee566d2d409fa7f83536fc9578dafda206054661c589df78d30664a3d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c9d828fee566d2d409fa7f83536fc9578dafda206054661c589df78d30664a3d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c9d828fee566d2d409fa7f83536fc9578dafda206054661c589df78d30664a3d", kill_on_drop: false }`
[INFO] [stdout] c9d828fee566d2d409fa7f83536fc9578dafda206054661c589df78d30664a3d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+ff34b919075f35a1787659e9c448a34b06bab8de" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9d11d5efd79fca555c32571a937f0064c62e9dc247fa30aa82af076aec53583e
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "9d11d5efd79fca555c32571a937f0064c62e9dc247fa30aa82af076aec53583e", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.67
[INFO] [stderr]    Compiling proc-macro2 v1.0.9
[INFO] [stderr]    Compiling syn v1.0.16
[INFO] [stderr]    Compiling unicode-width v0.1.7
[INFO] [stderr]    Compiling failure_derive v0.1.7
[INFO] [stderr]    Compiling strsim v0.10.0
[INFO] [stderr]    Compiling dyn-fmt v0.1.2
[INFO] [stderr]    Compiling ngrammatic v0.2.1
[INFO] [stderr]    Compiling proc-macro-error-attr v0.4.12
[INFO] [stderr]    Compiling proc-macro-error v0.4.12
[INFO] [stderr]    Compiling indexmap v1.4.0
[INFO] [stderr]    Compiling itertools v0.9.0
[INFO] [stderr]    Compiling log v0.4.8
[INFO] [stderr]    Compiling url v2.1.1
[INFO] [stderr]    Compiling unicode_reader v1.0.0
[INFO] [stderr]    Compiling textwrap v0.11.0
[INFO] [stderr]    Compiling quote v1.0.3
[INFO] [stderr]    Compiling jobserver v0.1.21
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling clap v2.33.1
[INFO] [stderr]    Compiling colored v1.9.3
[INFO] [stderr]    Compiling cc v1.0.50
[INFO] [stderr]    Compiling openssl-sys v0.9.58
[INFO] [stderr]    Compiling libz-sys v1.0.25
[INFO] [stderr]    Compiling libssh2-sys v0.2.18
[INFO] [stderr]    Compiling backtrace-sys v0.1.34
[INFO] [stderr]    Compiling libgit2-sys v0.12.7+1.0.0
[INFO] [stderr]    Compiling backtrace v0.3.45
[INFO] [stderr]    Compiling git2 v0.13.6
[INFO] [stderr]    Compiling syn-mid v0.5.0
[INFO] [stderr]    Compiling synstructure v0.12.3
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.3
[INFO] [stderr]    Compiling derivative v2.1.1
[INFO] [stderr]    Compiling proc-macro-error v1.0.3
[INFO] [stderr]    Compiling failure v0.1.7
[INFO] [stderr]    Compiling structopt-derive v0.4.8
[INFO] [stderr]    Compiling clap_derive v3.0.0-beta.1
[INFO] [stderr]    Compiling structopt v0.3.15
[INFO] [stderr]    Compiling clap v3.0.0-beta.1
[INFO] [stderr]    Compiling stegi v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 1m 22s
[INFO] running `Command { std: "docker" "inspect" "9d11d5efd79fca555c32571a937f0064c62e9dc247fa30aa82af076aec53583e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9d11d5efd79fca555c32571a937f0064c62e9dc247fa30aa82af076aec53583e", kill_on_drop: false }`
[INFO] [stdout] 9d11d5efd79fca555c32571a937f0064c62e9dc247fa30aa82af076aec53583e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+ff34b919075f35a1787659e9c448a34b06bab8de" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c2147f9621419219dfc5515b208e553a6ea363653f33b5acc17a080d85447bd9
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "c2147f9621419219dfc5515b208e553a6ea363653f33b5acc17a080d85447bd9", kill_on_drop: false }`
[INFO] [stderr]    Compiling pretty_assertions v0.6.1
[INFO] [stderr]    Compiling stegi v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/ast.rs:749:17
[INFO] [stdout]     |
[INFO] [stdout] 749 |                 ret_ty,
[INFO] [stdout]     |                 ^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 expected struct `Box`, found struct `typer::Ty`
[INFO] [stdout]     |                 help: store this in the heap by calling `Box::new`: `Box::new(ret_ty)`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<typer::Ty>`
[INFO] [stdout]                found struct `typer::Ty`
[INFO] [stdout]     = note: for more on the distinction between the stack and the heap, read https://doc.rust-lang.org/book/ch15-01-box.html, https://doc.rust-lang.org/rust-by-example/std/box.html, and https://doc.rust-lang.org/std/boxed/index.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/ast.rs:856:19
[INFO] [stdout]     |
[INFO] [stdout] 119 |     This(Ident),
[INFO] [stdout]     |     ----------- fn(ast::Ident) -> ast::ExprKind {ast::ExprKind::This} defined here
[INFO] [stdout] ...
[INFO] [stdout] 856 |             node: ExprKind::This,
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^ expected enum `ast::ExprKind`, found fn item
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected enum `ast::ExprKind`
[INFO] [stdout]             found fn item `fn(ast::Ident) -> ast::ExprKind {ast::ExprKind::This}`
[INFO] [stdout] help: use parentheses to instantiate this tuple variant
[INFO] [stdout]     |
[INFO] [stdout] 856 |             node: ExprKind::This(_),
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/ast.rs:875:34
[INFO] [stdout]     |
[INFO] [stdout] 875 |             node: ExprKind::Path(p),
[INFO] [stdout]     |                                  ^ expected struct `ast::Path`, found struct `std::path::Path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stdout]    --> src/ast.rs:873:22
[INFO] [stdout]     |
[INFO] [stdout] 873 |     pub fn path_expr(p: Path) -> Expr {
[INFO] [stdout]     |                      ^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `std::path::Path`, the trait `Sized` is not implemented for `[u8]`
[INFO] [stdout]     = note: required because it appears within the type `std::path::Path`
[INFO] [stdout]     = help: unsized fn params are gated as an unstable feature
[INFO] [stdout] help: function arguments must have a statically known size, borrowed types always have a known size
[INFO] [stdout]     |
[INFO] [stdout] 873 |     pub fn path_expr(p: &Path) -> Expr {
[INFO] [stdout]     |                         ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0559]: variant `ast::ExprKind::Struct` has no field named `path`
[INFO] [stdout]    --> src/ast.rs:883:38
[INFO] [stdout]     |
[INFO] [stdout] 883 |             node: ExprKind::Struct { path, members },
[INFO] [stdout]     |                                      ^^^^ `ast::ExprKind::Struct` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `name`, `members`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stdout]    --> src/ast.rs:881:23
[INFO] [stdout]     |
[INFO] [stdout] 881 |     pub fn struct_lit(path: Path, members: Vec<Member>) -> Expr {
[INFO] [stdout]     |                       ^^^^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `std::path::Path`, the trait `Sized` is not implemented for `[u8]`
[INFO] [stdout]     = note: required because it appears within the type `std::path::Path`
[INFO] [stdout]     = help: unsized fn params are gated as an unstable feature
[INFO] [stdout] help: function arguments must have a statically known size, borrowed types always have a known size
[INFO] [stdout]     |
[INFO] [stdout] 881 |     pub fn struct_lit(path: &Path, members: Vec<Member>) -> Expr {
[INFO] [stdout]     |                             ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/ast.rs:942:32
[INFO] [stdout]     |
[INFO] [stdout] 942 |             kind: TyKind::Path(p),
[INFO] [stdout]     |                                ^ expected struct `ast::Path`, found struct `std::path::Path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stdout]    --> src/ast.rs:940:20
[INFO] [stdout]     |
[INFO] [stdout] 940 |     pub fn path_ty(p: Path) -> Ty {
[INFO] [stdout]     |                    ^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `std::path::Path`, the trait `Sized` is not implemented for `[u8]`
[INFO] [stdout]     = note: required because it appears within the type `std::path::Path`
[INFO] [stdout]     = help: unsized fn params are gated as an unstable feature
[INFO] [stdout] help: function arguments must have a statically known size, borrowed types always have a known size
[INFO] [stdout]     |
[INFO] [stdout] 940 |     pub fn path_ty(p: &Path) -> Ty {
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/ast.rs:971:24
[INFO] [stdout]      |
[INFO] [stdout] 971  |           ($p:path) => ( {
[INFO] [stdout]      |  ________________________^
[INFO] [stdout] 972  | |             let str = stringify!($p).to_string();
[INFO] [stdout] 973  | |             let segments = str.split("::")
[INFO] [stdout] 974  | |                 .map(|s| s.to_string())
[INFO] [stdout] ...    |
[INFO] [stdout] 977  | |             Path::new(segments, Span::default())
[INFO] [stdout] 978  | |         }
[INFO] [stdout]      | |_________^ expected struct `std::path::Path`, found struct `ast::Path`
[INFO] [stdout]      | 
[INFO] [stdout]     ::: src/parser.rs:1398:38
[INFO] [stdout]      |
[INFO] [stdout] 1398 |           let expected = bin(path_expr(path!(a)), num(3), BinaryOp::Plus);
[INFO] [stdout]      |                                        -------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stdout]     --> src/parser.rs:1398:28
[INFO] [stdout]      |
[INFO] [stdout] 1398 |         let expected = bin(path_expr(path!(a)), num(3), BinaryOp::Plus);
[INFO] [stdout]      |                            ^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `std::path::Path`, the trait `Sized` is not implemented for `[u8]`
[INFO] [stdout]      = note: required because it appears within the type `std::path::Path`
[INFO] [stdout]      = note: all function arguments must have a statically known size
[INFO] [stdout]      = help: unsized fn params are gated as an unstable feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/ast.rs:971:24
[INFO] [stdout]      |
[INFO] [stdout] 971  |           ($p:path) => ( {
[INFO] [stdout]      |  ________________________^
[INFO] [stdout] 972  | |             let str = stringify!($p).to_string();
[INFO] [stdout] 973  | |             let segments = str.split("::")
[INFO] [stdout] 974  | |                 .map(|s| s.to_string())
[INFO] [stdout] ...    |
[INFO] [stdout] 977  | |             Path::new(segments, Span::default())
[INFO] [stdout] 978  | |         }
[INFO] [stdout]      | |_________^ expected struct `std::path::Path`, found struct `ast::Path`
[INFO] [stdout]      | 
[INFO] [stdout]     ::: src/parser.rs:1406:13
[INFO] [stdout]      |
[INFO] [stdout] 1406 |               path!(foo::fazz),
[INFO] [stdout]      |               ---------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/ast.rs:971:24
[INFO] [stdout]      |
[INFO] [stdout] 971  |           ($p:path) => ( {
[INFO] [stdout]      |  ________________________^
[INFO] [stdout] 972  | |             let str = stringify!($p).to_string();
[INFO] [stdout] 973  | |             let segments = str.split("::")
[INFO] [stdout] 974  | |                 .map(|s| s.to_string())
[INFO] [stdout] ...    |
[INFO] [stdout] 977  | |             Path::new(segments, Span::default())
[INFO] [stdout] 978  | |         }
[INFO] [stdout]      | |_________^ expected struct `std::path::Path`, found struct `ast::Path`
[INFO] [stdout]      | 
[INFO] [stdout]     ::: src/parser.rs:1409:48
[INFO] [stdout]      |
[INFO] [stdout] 1409 |                   member(ident!(buzz), path_expr(path!(WochenTag::Montag))),
[INFO] [stdout]      |                                                  ------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stdout]     --> src/parser.rs:1405:24
[INFO] [stdout]      |
[INFO] [stdout] 1405 |         let expected = struct_lit(
[INFO] [stdout]      |                        ^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `std::path::Path`, the trait `Sized` is not implemented for `[u8]`
[INFO] [stdout]      = note: required because it appears within the type `std::path::Path`
[INFO] [stdout]      = note: all function arguments must have a statically known size
[INFO] [stdout]      = help: unsized fn params are gated as an unstable feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/ast.rs:971:24
[INFO] [stdout]      |
[INFO] [stdout] 971  |           ($p:path) => ( {
[INFO] [stdout]      |  ________________________^
[INFO] [stdout] 972  | |             let str = stringify!($p).to_string();
[INFO] [stdout] 973  | |             let segments = str.split("::")
[INFO] [stdout] 974  | |                 .map(|s| s.to_string())
[INFO] [stdout] ...    |
[INFO] [stdout] 977  | |             Path::new(segments, Span::default())
[INFO] [stdout] 978  | |         }
[INFO] [stdout]      | |_________^ expected struct `std::path::Path`, found struct `ast::Path`
[INFO] [stdout]      | 
[INFO] [stdout]     ::: src/parser.rs:1418:38
[INFO] [stdout]      |
[INFO] [stdout] 1418 |           let expected = bin(path_expr(path!(a)), num(3), BinaryOp::Divide);
[INFO] [stdout]      |                                        -------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stdout]     --> src/parser.rs:1418:28
[INFO] [stdout]      |
[INFO] [stdout] 1418 |         let expected = bin(path_expr(path!(a)), num(3), BinaryOp::Divide);
[INFO] [stdout]      |                            ^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `std::path::Path`, the trait `Sized` is not implemented for `[u8]`
[INFO] [stdout]      = note: required because it appears within the type `std::path::Path`
[INFO] [stdout]      = note: all function arguments must have a statically known size
[INFO] [stdout]      = help: unsized fn params are gated as an unstable feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/ast.rs:971:24
[INFO] [stdout]      |
[INFO] [stdout] 971  |           ($p:path) => ( {
[INFO] [stdout]      |  ________________________^
[INFO] [stdout] 972  | |             let str = stringify!($p).to_string();
[INFO] [stdout] 973  | |             let segments = str.split("::")
[INFO] [stdout] 974  | |                 .map(|s| s.to_string())
[INFO] [stdout] ...    |
[INFO] [stdout] 977  | |             Path::new(segments, Span::default())
[INFO] [stdout] 978  | |         }
[INFO] [stdout]      | |_________^ expected struct `std::path::Path`, found struct `ast::Path`
[INFO] [stdout]      | 
[INFO] [stdout]     ::: src/parser.rs:1426:32
[INFO] [stdout]      |
[INFO] [stdout] 1426 |               tup!(bin(path_expr(path!(a)), num(3), BinaryOp::Multiply)),
[INFO] [stdout]      |                                  -------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stdout]     --> src/parser.rs:1426:22
[INFO] [stdout]      |
[INFO] [stdout] 1426 |             tup!(bin(path_expr(path!(a)), num(3), BinaryOp::Multiply)),
[INFO] [stdout]      |                      ^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `std::path::Path`, the trait `Sized` is not implemented for `[u8]`
[INFO] [stdout]      = note: required because it appears within the type `std::path::Path`
[INFO] [stdout]      = note: all function arguments must have a statically known size
[INFO] [stdout]      = help: unsized fn params are gated as an unstable feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/ast.rs:971:24
[INFO] [stdout]      |
[INFO] [stdout] 971  |           ($p:path) => ( {
[INFO] [stdout]      |  ________________________^
[INFO] [stdout] 972  | |             let str = stringify!($p).to_string();
[INFO] [stdout] 973  | |             let segments = str.split("::")
[INFO] [stdout] 974  | |                 .map(|s| s.to_string())
[INFO] [stdout] ...    |
[INFO] [stdout] 977  | |             Path::new(segments, Span::default())
[INFO] [stdout] 978  | |         }
[INFO] [stdout]      | |_________^ expected struct `std::path::Path`, found struct `ast::Path`
[INFO] [stdout]      | 
[INFO] [stdout]     ::: src/parser.rs:1439:32
[INFO] [stdout]      |
[INFO] [stdout] 1439 |                   call(path_expr(path!(foo)), vec![tup!(num(42), num(42), num(42))]),
[INFO] [stdout]      |                                  ---------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stdout]     --> src/parser.rs:1439:22
[INFO] [stdout]      |
[INFO] [stdout] 1439 |                 call(path_expr(path!(foo)), vec![tup!(num(42), num(42), num(42))]),
[INFO] [stdout]      |                      ^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `std::path::Path`, the trait `Sized` is not implemented for `[u8]`
[INFO] [stdout]      = note: required because it appears within the type `std::path::Path`
[INFO] [stdout]      = note: all function arguments must have a statically known size
[INFO] [stdout]      = help: unsized fn params are gated as an unstable feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/ast.rs:971:24
[INFO] [stdout]      |
[INFO] [stdout] 971  |           ($p:path) => ( {
[INFO] [stdout]      |  ________________________^
[INFO] [stdout] 972  | |             let str = stringify!($p).to_string();
[INFO] [stdout] 973  | |             let segments = str.split("::")
[INFO] [stdout] 974  | |                 .map(|s| s.to_string())
[INFO] [stdout] ...    |
[INFO] [stdout] 977  | |             Path::new(segments, Span::default())
[INFO] [stdout] 978  | |         }
[INFO] [stdout]      | |_________^ expected struct `std::path::Path`, found struct `ast::Path`
[INFO] [stdout]      | 
[INFO] [stdout]     ::: src/parser.rs:1451:45
[INFO] [stdout]      |
[INFO] [stdout] 1451 |           let expected = call(field(path_expr(path!(foo)), ident!(bar)), vec![]);
[INFO] [stdout]      |                                               ---------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stdout]     --> src/parser.rs:1451:35
[INFO] [stdout]      |
[INFO] [stdout] 1451 |         let expected = call(field(path_expr(path!(foo)), ident!(bar)), vec![]);
[INFO] [stdout]      |                                   ^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `std::path::Path`, the trait `Sized` is not implemented for `[u8]`
[INFO] [stdout]      = note: required because it appears within the type `std::path::Path`
[INFO] [stdout]      = note: all function arguments must have a statically known size
[INFO] [stdout]      = help: unsized fn params are gated as an unstable feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/ast.rs:971:24
[INFO] [stdout]      |
[INFO] [stdout] 971  |           ($p:path) => ( {
[INFO] [stdout]      |  ________________________^
[INFO] [stdout] 972  | |             let str = stringify!($p).to_string();
[INFO] [stdout] 973  | |             let segments = str.split("::")
[INFO] [stdout] 974  | |                 .map(|s| s.to_string())
[INFO] [stdout] ...    |
[INFO] [stdout] 977  | |             Path::new(segments, Span::default())
[INFO] [stdout] 978  | |         }
[INFO] [stdout]      | |_________^ expected struct `std::path::Path`, found struct `ast::Path`
[INFO] [stdout]      | 
[INFO] [stdout]     ::: src/parser.rs:1472:39
[INFO] [stdout]      |
[INFO] [stdout] 1472 |           let expected = call(path_expr(path!(foo::bazz::bar)), vec![]);
[INFO] [stdout]      |                                         --------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stdout]     --> src/parser.rs:1472:29
[INFO] [stdout]      |
[INFO] [stdout] 1472 |         let expected = call(path_expr(path!(foo::bazz::bar)), vec![]);
[INFO] [stdout]      |                             ^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `std::path::Path`, the trait `Sized` is not implemented for `[u8]`
[INFO] [stdout]      = note: required because it appears within the type `std::path::Path`
[INFO] [stdout]      = note: all function arguments must have a statically known size
[INFO] [stdout]      = help: unsized fn params are gated as an unstable feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/ast.rs:971:24
[INFO] [stdout]      |
[INFO] [stdout] 971  |           ($p:path) => ( {
[INFO] [stdout]      |  ________________________^
[INFO] [stdout] 972  | |             let str = stringify!($p).to_string();
[INFO] [stdout] 973  | |             let segments = str.split("::")
[INFO] [stdout] 974  | |                 .map(|s| s.to_string())
[INFO] [stdout] ...    |
[INFO] [stdout] 977  | |             Path::new(segments, Span::default())
[INFO] [stdout] 978  | |         }
[INFO] [stdout]      | |_________^ expected struct `std::path::Path`, found struct `ast::Path`
[INFO] [stdout]      | 
[INFO] [stdout]     ::: src/parser.rs:1479:34
[INFO] [stdout]      |
[INFO] [stdout] 1479 |           let expected = path_expr(path!(foo::bazz::bar));
[INFO] [stdout]      |                                    --------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stdout]     --> src/parser.rs:1479:24
[INFO] [stdout]      |
[INFO] [stdout] 1479 |         let expected = path_expr(path!(foo::bazz::bar));
[INFO] [stdout]      |                        ^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `std::path::Path`, the trait `Sized` is not implemented for `[u8]`
[INFO] [stdout]      = note: required because it appears within the type `std::path::Path`
[INFO] [stdout]      = note: all function arguments must have a statically known size
[INFO] [stdout]      = help: unsized fn params are gated as an unstable feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]     --> src/parser.rs:1497:24
[INFO] [stdout]      |
[INFO] [stdout] 1497 |         let t_stream = Lexer::new(&test.to_string())
[INFO] [stdout]      |                        ^^^^^^^^^^ ----------------- supplied 1 argument
[INFO] [stdout]      |                        |
[INFO] [stdout]      |                        expected 2 arguments
[INFO] [stdout]      |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]     --> src/lexer.rs:293:12
[INFO] [stdout]      |
[INFO] [stdout] 293  |     pub fn new(data: &'a str, file: PathBuf) -> Self {
[INFO] [stdout]      |            ^^^ -------------  -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]     --> src/parser.rs:1500:22
[INFO] [stdout]      |
[INFO] [stdout] 1500 |         let actual = Parser::new(t_stream).parse_ty_specifier().unwrap();
[INFO] [stdout]      |                      ^^^^^^^^^^^ -------- supplied 1 argument
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      expected 2 arguments
[INFO] [stdout]      |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]     --> src/parser.rs:87:12
[INFO] [stdout]      |
[INFO] [stdout] 87   |     pub fn new(i: Vec<Token>, file: &PathBuf) -> Self {
[INFO] [stdout]      |            ^^^ -------------  --------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/ast.rs:971:24
[INFO] [stdout]      |
[INFO] [stdout] 971  |           ($p:path) => ( {
[INFO] [stdout]      |  ________________________^
[INFO] [stdout] 972  | |             let str = stringify!($p).to_string();
[INFO] [stdout] 973  | |             let segments = str.split("::")
[INFO] [stdout] 974  | |                 .map(|s| s.to_string())
[INFO] [stdout] ...    |
[INFO] [stdout] 977  | |             Path::new(segments, Span::default())
[INFO] [stdout] 978  | |         }
[INFO] [stdout]      | |_________^ expected struct `std::path::Path`, found struct `ast::Path`
[INFO] [stdout]      | 
[INFO] [stdout]     ::: src/parser.rs:1502:42
[INFO] [stdout]      |
[INFO] [stdout] 1502 |               array_ty(tup_ty(vec![path_ty(path!(Foo)), path_ty(path!(Bar))])),
[INFO] [stdout]      |                                            ---------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/ast.rs:971:24
[INFO] [stdout]      |
[INFO] [stdout] 971  |           ($p:path) => ( {
[INFO] [stdout]      |  ________________________^
[INFO] [stdout] 972  | |             let str = stringify!($p).to_string();
[INFO] [stdout] 973  | |             let segments = str.split("::")
[INFO] [stdout] 974  | |                 .map(|s| s.to_string())
[INFO] [stdout] ...    |
[INFO] [stdout] 977  | |             Path::new(segments, Span::default())
[INFO] [stdout] 978  | |         }
[INFO] [stdout]      | |_________^ expected struct `std::path::Path`, found struct `ast::Path`
[INFO] [stdout]      | 
[INFO] [stdout]     ::: src/parser.rs:1502:63
[INFO] [stdout]      |
[INFO] [stdout] 1502 |               array_ty(tup_ty(vec![path_ty(path!(Foo)), path_ty(path!(Bar))])),
[INFO] [stdout]      |                                                                 ---------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/ast.rs:971:24
[INFO] [stdout]      |
[INFO] [stdout] 971  |           ($p:path) => ( {
[INFO] [stdout]      |  ________________________^
[INFO] [stdout] 972  | |             let str = stringify!($p).to_string();
[INFO] [stdout] 973  | |             let segments = str.split("::")
[INFO] [stdout] 974  | |                 .map(|s| s.to_string())
[INFO] [stdout] ...    |
[INFO] [stdout] 977  | |             Path::new(segments, Span::default())
[INFO] [stdout] 978  | |         }
[INFO] [stdout]      | |_________^ expected struct `std::path::Path`, found struct `ast::Path`
[INFO] [stdout]      | 
[INFO] [stdout]     ::: src/parser.rs:1503:42
[INFO] [stdout]      |
[INFO] [stdout] 1503 |               array_ty(tup_ty(vec![path_ty(path!(Bar)), path_ty(path!(Foo))])),
[INFO] [stdout]      |                                            ---------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/ast.rs:971:24
[INFO] [stdout]      |
[INFO] [stdout] 971  |           ($p:path) => ( {
[INFO] [stdout]      |  ________________________^
[INFO] [stdout] 972  | |             let str = stringify!($p).to_string();
[INFO] [stdout] 973  | |             let segments = str.split("::")
[INFO] [stdout] 974  | |                 .map(|s| s.to_string())
[INFO] [stdout] ...    |
[INFO] [stdout] 977  | |             Path::new(segments, Span::default())
[INFO] [stdout] 978  | |         }
[INFO] [stdout]      | |_________^ expected struct `std::path::Path`, found struct `ast::Path`
[INFO] [stdout]      | 
[INFO] [stdout]     ::: src/parser.rs:1503:63
[INFO] [stdout]      |
[INFO] [stdout] 1503 |               array_ty(tup_ty(vec![path_ty(path!(Bar)), path_ty(path!(Foo))])),
[INFO] [stdout]      |                                                                 ---------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stdout]     --> src/parser.rs:1502:34
[INFO] [stdout]      |
[INFO] [stdout] 1502 |             array_ty(tup_ty(vec![path_ty(path!(Foo)), path_ty(path!(Bar))])),
[INFO] [stdout]      |                                  ^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `std::path::Path`, the trait `Sized` is not implemented for `[u8]`
[INFO] [stdout]      = note: required because it appears within the type `std::path::Path`
[INFO] [stdout]      = note: all function arguments must have a statically known size
[INFO] [stdout]      = help: unsized fn params are gated as an unstable feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/ast.rs:971:24
[INFO] [stdout]      |
[INFO] [stdout] 971  |           ($p:path) => ( {
[INFO] [stdout]      |  ________________________^
[INFO] [stdout] 972  | |             let str = stringify!($p).to_string();
[INFO] [stdout] 973  | |             let segments = str.split("::")
[INFO] [stdout] 974  | |                 .map(|s| s.to_string())
[INFO] [stdout] ...    |
[INFO] [stdout] 977  | |             Path::new(segments, Span::default())
[INFO] [stdout] 978  | |         }
[INFO] [stdout]      | |_________^ expected struct `std::path::Path`, found struct `ast::Path`
[INFO] [stdout]      | 
[INFO] [stdout]     ::: src/parser.rs:1553:46
[INFO] [stdout]      |
[INFO] [stdout] 1553 |                       param(ident!(x), path_ty(path!(Zahl))),
[INFO] [stdout]      |                                                ----------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/ast.rs:971:24
[INFO] [stdout]      |
[INFO] [stdout] 971  |           ($p:path) => ( {
[INFO] [stdout]      |  ________________________^
[INFO] [stdout] 972  | |             let str = stringify!($p).to_string();
[INFO] [stdout] 973  | |             let segments = str.split("::")
[INFO] [stdout] 974  | |                 .map(|s| s.to_string())
[INFO] [stdout] ...    |
[INFO] [stdout] 977  | |             Path::new(segments, Span::default())
[INFO] [stdout] 978  | |         }
[INFO] [stdout]      | |_________^ expected struct `std::path::Path`, found struct `ast::Path`
[INFO] [stdout]      | 
[INFO] [stdout]     ::: src/parser.rs:1554:55
[INFO] [stdout]      |
[INFO] [stdout] 1554 |                       param(ident!(y), array_ty(path_ty(path!(Test)))),
[INFO] [stdout]      |                                                         ----------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/parser.rs:1556:25
[INFO] [stdout]      |
[INFO] [stdout] 1556 |                 ret_ty: unit_ty(),
[INFO] [stdout]      |                         ^^^^^^^^^
[INFO] [stdout]      |                         |
[INFO] [stdout]      |                         expected struct `Box`, found struct `typer::Ty`
[INFO] [stdout]      |                         help: store this in the heap by calling `Box::new`: `Box::new(unit_ty())`
[INFO] [stdout]      |
[INFO] [stdout]      = note: expected struct `Box<typer::Ty>`
[INFO] [stdout]                 found struct `typer::Ty`
[INFO] [stdout]      = note: for more on the distinction between the stack and the heap, read https://doc.rust-lang.org/book/ch15-01-box.html, https://doc.rust-lang.org/rust-by-example/std/box.html, and https://doc.rust-lang.org/std/boxed/index.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `ast::Decl`
[INFO] [stdout]     --> src/parser.rs:1562:9
[INFO] [stdout]      |
[INFO] [stdout] 1562 |         assert_eq!(expected, actual);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         ast::Decl
[INFO] [stdout]      |         ast::Decl
[INFO] [stdout]      |
[INFO] [stdout]      = note: an implementation of `std::cmp::PartialEq` might be missing for `ast::Decl`
[INFO] [stdout]      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stdout]     --> src/parser.rs:1553:38
[INFO] [stdout]      |
[INFO] [stdout] 1553 |                     param(ident!(x), path_ty(path!(Zahl))),
[INFO] [stdout]      |                                      ^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `std::path::Path`, the trait `Sized` is not implemented for `[u8]`
[INFO] [stdout]      = note: required because it appears within the type `std::path::Path`
[INFO] [stdout]      = note: all function arguments must have a statically known size
[INFO] [stdout]      = help: unsized fn params are gated as an unstable feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/ast.rs:971:24
[INFO] [stdout]      |
[INFO] [stdout] 971  |           ($p:path) => ( {
[INFO] [stdout]      |  ________________________^
[INFO] [stdout] 972  | |             let str = stringify!($p).to_string();
[INFO] [stdout] 973  | |             let segments = str.split("::")
[INFO] [stdout] 974  | |                 .map(|s| s.to_string())
[INFO] [stdout] ...    |
[INFO] [stdout] 977  | |             Path::new(segments, Span::default())
[INFO] [stdout] 978  | |         }
[INFO] [stdout]      | |_________^ expected struct `std::path::Path`, found struct `ast::Path`
[INFO] [stdout]      | 
[INFO] [stdout]     ::: src/parser.rs:1615:58
[INFO] [stdout]      |
[INFO] [stdout] 1615 |           let expected = Stmt::Expr(assign(index(path_expr(path!(foo)), num(0)), num(20)));
[INFO] [stdout]      |                                                            ---------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stdout]     --> src/parser.rs:1615:48
[INFO] [stdout]      |
[INFO] [stdout] 1615 |         let expected = Stmt::Expr(assign(index(path_expr(path!(foo)), num(0)), num(20)));
[INFO] [stdout]      |                                                ^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `std::path::Path`, the trait `Sized` is not implemented for `[u8]`
[INFO] [stdout]      = note: required because it appears within the type `std::path::Path`
[INFO] [stdout]      = note: all function arguments must have a statically known size
[INFO] [stdout]      = help: unsized fn params are gated as an unstable feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/ast.rs:971:24
[INFO] [stdout]      |
[INFO] [stdout] 971  |           ($p:path) => ( {
[INFO] [stdout]      |  ________________________^
[INFO] [stdout] 972  | |             let str = stringify!($p).to_string();
[INFO] [stdout] 973  | |             let segments = str.split("::")
[INFO] [stdout] 974  | |                 .map(|s| s.to_string())
[INFO] [stdout] ...    |
[INFO] [stdout] 977  | |             Path::new(segments, Span::default())
[INFO] [stdout] 978  | |         }
[INFO] [stdout]      | |_________^ expected struct `std::path::Path`, found struct `ast::Path`
[INFO] [stdout]      | 
[INFO] [stdout]     ::: src/parser.rs:1648:52
[INFO] [stdout]      |
[INFO] [stdout] 1648 |                   vec![param(ident!(selbst), path_ty(path!(Mathe::Zahl)))],
[INFO] [stdout]      |                                                      ------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/ast.rs:971:24
[INFO] [stdout]      |
[INFO] [stdout] 971  |           ($p:path) => ( {
[INFO] [stdout]      |  ________________________^
[INFO] [stdout] 972  | |             let str = stringify!($p).to_string();
[INFO] [stdout] 973  | |             let segments = str.split("::")
[INFO] [stdout] 974  | |                 .map(|s| s.to_string())
[INFO] [stdout] ...    |
[INFO] [stdout] 977  | |             Path::new(segments, Span::default())
[INFO] [stdout] 978  | |         }
[INFO] [stdout]      | |_________^ expected struct `std::path::Path`, found struct `ast::Path`
[INFO] [stdout]      | 
[INFO] [stdout]     ::: src/parser.rs:1649:25
[INFO] [stdout]      |
[INFO] [stdout] 1649 |                   path_ty(path!(Bool)),
[INFO] [stdout]      |                           ----------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `ast::Decl`
[INFO] [stdout]     --> src/parser.rs:1654:9
[INFO] [stdout]      |
[INFO] [stdout] 1654 |         assert_eq!(actual, expected);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         ast::Decl
[INFO] [stdout]      |         ast::Decl
[INFO] [stdout]      |
[INFO] [stdout]      = note: an implementation of `std::cmp::PartialEq` might be missing for `ast::Decl`
[INFO] [stdout]      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stdout]     --> src/parser.rs:1648:44
[INFO] [stdout]      |
[INFO] [stdout] 1648 |                 vec![param(ident!(selbst), path_ty(path!(Mathe::Zahl)))],
[INFO] [stdout]      |                                            ^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `std::path::Path`, the trait `Sized` is not implemented for `[u8]`
[INFO] [stdout]      = note: required because it appears within the type `std::path::Path`
[INFO] [stdout]      = note: all function arguments must have a statically known size
[INFO] [stdout]      = help: unsized fn params are gated as an unstable feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/ast.rs:971:24
[INFO] [stdout]      |
[INFO] [stdout] 971  |           ($p:path) => ( {
[INFO] [stdout]      |  ________________________^
[INFO] [stdout] 972  | |             let str = stringify!($p).to_string();
[INFO] [stdout] 973  | |             let segments = str.split("::")
[INFO] [stdout] 974  | |                 .map(|s| s.to_string())
[INFO] [stdout] ...    |
[INFO] [stdout] 977  | |             Path::new(segments, Span::default())
[INFO] [stdout] 978  | |         }
[INFO] [stdout]      | |_________^ expected struct `std::path::Path`, found struct `ast::Path`
[INFO] [stdout]      | 
[INFO] [stdout]     ::: src/parser.rs:1701:33
[INFO] [stdout]      |
[INFO] [stdout] 1701 |                       ty: path_ty(path!(Zahl)),
[INFO] [stdout]      |                                   ----------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/ast.rs:971:24
[INFO] [stdout]      |
[INFO] [stdout] 971  |           ($p:path) => ( {
[INFO] [stdout]      |  ________________________^
[INFO] [stdout] 972  | |             let str = stringify!($p).to_string();
[INFO] [stdout] 973  | |             let segments = str.split("::")
[INFO] [stdout] 974  | |                 .map(|s| s.to_string())
[INFO] [stdout] ...    |
[INFO] [stdout] 977  | |             Path::new(segments, Span::default())
[INFO] [stdout] 978  | |         }
[INFO] [stdout]      | |_________^ expected struct `std::path::Path`, found struct `ast::Path`
[INFO] [stdout]      | 
[INFO] [stdout]     ::: src/parser.rs:1706:33
[INFO] [stdout]      |
[INFO] [stdout] 1706 |                       ty: path_ty(path!(Zahl)),
[INFO] [stdout]      |                                   ----------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/parser.rs:1693:21
[INFO] [stdout]      |
[INFO] [stdout] 1693 |               fields: vec![
[INFO] [stdout]      |  _____________________^
[INFO] [stdout] 1694 | |                 Field {
[INFO] [stdout] 1695 | |                     name: ident!(speicher),
[INFO] [stdout] 1696 | |                     ty: array_ty(poly_ty(ident!(T))),
[INFO] [stdout] ...    |
[INFO] [stdout] 1708 | |                 },
[INFO] [stdout] 1709 | |             ],
[INFO] [stdout]      | |_____________^ expected struct `std::collections::HashMap`, found struct `Vec`
[INFO] [stdout]      |
[INFO] [stdout]      = note: expected struct `std::collections::HashMap<ast::Ident, typer::Ty>`
[INFO] [stdout]                 found struct `Vec<ast::Field>`
[INFO] [stdout]      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/parser.rs:1710:22
[INFO] [stdout]      |
[INFO] [stdout] 1710 |             methods: Vec::new(),
[INFO] [stdout]      |                      ^^^^^^^^^^ expected struct `std::collections::HashMap`, found struct `Vec`
[INFO] [stdout]      |
[INFO] [stdout]      = note: expected struct `std::collections::HashMap<String, ast::FnDecl>`
[INFO] [stdout]                 found struct `Vec<_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `ast::Decl`
[INFO] [stdout]     --> src/parser.rs:1713:9
[INFO] [stdout]      |
[INFO] [stdout] 1713 |         assert_eq!(actual, expected);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         ast::Decl
[INFO] [stdout]      |         ast::Decl
[INFO] [stdout]      |
[INFO] [stdout]      = note: an implementation of `std::cmp::PartialEq` might be missing for `ast::Decl`
[INFO] [stdout]      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stdout]     --> src/parser.rs:1701:25
[INFO] [stdout]      |
[INFO] [stdout] 1701 |                     ty: path_ty(path!(Zahl)),
[INFO] [stdout]      |                         ^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `std::path::Path`, the trait `Sized` is not implemented for `[u8]`
[INFO] [stdout]      = note: required because it appears within the type `std::path::Path`
[INFO] [stdout]      = note: all function arguments must have a statically known size
[INFO] [stdout]      = help: unsized fn params are gated as an unstable feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/ast.rs:971:24
[INFO] [stdout]      |
[INFO] [stdout] 971  |           ($p:path) => ( {
[INFO] [stdout]      |  ________________________^
[INFO] [stdout] 972  | |             let str = stringify!($p).to_string();
[INFO] [stdout] 973  | |             let segments = str.split("::")
[INFO] [stdout] 974  | |                 .map(|s| s.to_string())
[INFO] [stdout] ...    |
[INFO] [stdout] 977  | |             Path::new(segments, Span::default())
[INFO] [stdout] 978  | |         }
[INFO] [stdout]      | |_________^ expected struct `std::path::Path`, found struct `ast::Path`
[INFO] [stdout]      | 
[INFO] [stdout]     ::: src/parser.rs:1723:51
[INFO] [stdout]      |
[INFO] [stdout] 1723 |                       VariantData::Val(vec![path_ty(path!(Text))]),
[INFO] [stdout]      |                                                     ----------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/parser.rs:1727:22
[INFO] [stdout]      |
[INFO] [stdout] 1727 |             methods: vec![],
[INFO] [stdout]      |                      ^^^^^^ expected struct `std::collections::HashMap`, found struct `Vec`
[INFO] [stdout]      |
[INFO] [stdout]      = note: expected struct `std::collections::HashMap<String, ast::FnDecl>`
[INFO] [stdout]                 found struct `Vec<_>`
[INFO] [stdout]      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `ast::Decl`
[INFO] [stdout]     --> src/parser.rs:1730:9
[INFO] [stdout]      |
[INFO] [stdout] 1730 |         assert_eq!(actual, expected);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         ast::Decl
[INFO] [stdout]      |         ast::Decl
[INFO] [stdout]      |
[INFO] [stdout]      = note: an implementation of `std::cmp::PartialEq` might be missing for `ast::Decl`
[INFO] [stdout]      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stdout]     --> src/parser.rs:1723:43
[INFO] [stdout]      |
[INFO] [stdout] 1723 |                     VariantData::Val(vec![path_ty(path!(Text))]),
[INFO] [stdout]      |                                           ^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `std::path::Path`, the trait `Sized` is not implemented for `[u8]`
[INFO] [stdout]      = note: required because it appears within the type `std::path::Path`
[INFO] [stdout]      = note: all function arguments must have a statically known size
[INFO] [stdout]      = help: unsized fn params are gated as an unstable feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/ast.rs:971:24
[INFO] [stdout]      |
[INFO] [stdout] 971  |           ($p:path) => ( {
[INFO] [stdout]      |  ________________________^
[INFO] [stdout] 972  | |             let str = stringify!($p).to_string();
[INFO] [stdout] 973  | |             let segments = str.split("::")
[INFO] [stdout] 974  | |                 .map(|s| s.to_string())
[INFO] [stdout] ...    |
[INFO] [stdout] 977  | |             Path::new(segments, Span::default())
[INFO] [stdout] 978  | |         }
[INFO] [stdout]      | |_________^ expected struct `std::path::Path`, found struct `ast::Path`
[INFO] [stdout]      | 
[INFO] [stdout]     ::: src/parser.rs:1772:35
[INFO] [stdout]      |
[INFO] [stdout] 1772 |                       cmp(path_expr(path!(a)), num(3), CmpOp::EqEq),
[INFO] [stdout]      |                                     -------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stdout]     --> src/parser.rs:1772:25
[INFO] [stdout]      |
[INFO] [stdout] 1772 |                     cmp(path_expr(path!(a)), num(3), CmpOp::EqEq),
[INFO] [stdout]      |                         ^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `std::path::Path`, the trait `Sized` is not implemented for `[u8]`
[INFO] [stdout]      = note: required because it appears within the type `std::path::Path`
[INFO] [stdout]      = note: all function arguments must have a statically known size
[INFO] [stdout]      = help: unsized fn params are gated as an unstable feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/lexer.rs:631:22
[INFO] [stdout]     |
[INFO] [stdout] 631 |         let actual = Lexer::new(&test)
[INFO] [stdout]     |                      ^^^^^^^^^^ ----- supplied 1 argument
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      expected 2 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/lexer.rs:293:12
[INFO] [stdout]     |
[INFO] [stdout] 293 |     pub fn new(data: &'a str, file: PathBuf) -> Self {
[INFO] [stdout]     |            ^^^ -------------  -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/lexer.rs:655:22
[INFO] [stdout]     |
[INFO] [stdout] 655 |         let actual = Lexer::new(&test)
[INFO] [stdout]     |                      ^^^^^^^^^^ ----- supplied 1 argument
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      expected 2 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/lexer.rs:293:12
[INFO] [stdout]     |
[INFO] [stdout] 293 |     pub fn new(data: &'a str, file: PathBuf) -> Self {
[INFO] [stdout]     |            ^^^ -------------  -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/lexer.rs:673:22
[INFO] [stdout]     |
[INFO] [stdout] 673 |         let actual = Lexer::new(&test)
[INFO] [stdout]     |                      ^^^^^^^^^^ ----- supplied 1 argument
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      expected 2 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/lexer.rs:293:12
[INFO] [stdout]     |
[INFO] [stdout] 293 |     pub fn new(data: &'a str, file: PathBuf) -> Self {
[INFO] [stdout]     |            ^^^ -------------  -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/lexer.rs:695:22
[INFO] [stdout]     |
[INFO] [stdout] 695 |         let actual = Lexer::new(&test)
[INFO] [stdout]     |                      ^^^^^^^^^^ ----- supplied 1 argument
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      expected 2 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/lexer.rs:293:12
[INFO] [stdout]     |
[INFO] [stdout] 293 |     pub fn new(data: &'a str, file: PathBuf) -> Self {
[INFO] [stdout]     |            ^^^ -------------  -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/lexer.rs:720:22
[INFO] [stdout]     |
[INFO] [stdout] 720 |         let actual = Lexer::new(&test)
[INFO] [stdout]     |                      ^^^^^^^^^^ ----- supplied 1 argument
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      expected 2 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/lexer.rs:293:12
[INFO] [stdout]     |
[INFO] [stdout] 293 |     pub fn new(data: &'a str, file: PathBuf) -> Self {
[INFO] [stdout]     |            ^^^ -------------  -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/lexer.rs:740:22
[INFO] [stdout]     |
[INFO] [stdout] 740 |         let actual = Lexer::new(&test)
[INFO] [stdout]     |                      ^^^^^^^^^^ ----- supplied 1 argument
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      expected 2 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/lexer.rs:293:12
[INFO] [stdout]     |
[INFO] [stdout] 293 |     pub fn new(data: &'a str, file: PathBuf) -> Self {
[INFO] [stdout]     |            ^^^ -------------  -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/lexer.rs:758:22
[INFO] [stdout]     |
[INFO] [stdout] 758 |         let actual = Lexer::new(&test)
[INFO] [stdout]     |                      ^^^^^^^^^^ ----- supplied 1 argument
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      expected 2 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/lexer.rs:293:12
[INFO] [stdout]     |
[INFO] [stdout] 293 |     pub fn new(data: &'a str, file: PathBuf) -> Self {
[INFO] [stdout]     |            ^^^ -------------  -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/lexer.rs:779:22
[INFO] [stdout]     |
[INFO] [stdout] 779 |         let actual = Lexer::new(&test)
[INFO] [stdout]     |                      ^^^^^^^^^^ ----- supplied 1 argument
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      expected 2 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/lexer.rs:293:12
[INFO] [stdout]     |
[INFO] [stdout] 293 |     pub fn new(data: &'a str, file: PathBuf) -> Self {
[INFO] [stdout]     |            ^^^ -------------  -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/lexer.rs:795:22
[INFO] [stdout]     |
[INFO] [stdout] 795 |         let actual = Lexer::new(&test)
[INFO] [stdout]     |                      ^^^^^^^^^^ ----- supplied 1 argument
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      expected 2 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/lexer.rs:293:12
[INFO] [stdout]     |
[INFO] [stdout] 293 |     pub fn new(data: &'a str, file: PathBuf) -> Self {
[INFO] [stdout]     |            ^^^ -------------  -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/lexer.rs:812:22
[INFO] [stdout]     |
[INFO] [stdout] 812 |         let actual = Lexer::new(&test)
[INFO] [stdout]     |                      ^^^^^^^^^^ ----- supplied 1 argument
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      expected 2 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/lexer.rs:293:12
[INFO] [stdout]     |
[INFO] [stdout] 293 |     pub fn new(data: &'a str, file: PathBuf) -> Self {
[INFO] [stdout]     |            ^^^ -------------  -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/lexer.rs:829:22
[INFO] [stdout]     |
[INFO] [stdout] 829 |         let actual = Lexer::new(&test)
[INFO] [stdout]     |                      ^^^^^^^^^^ ----- supplied 1 argument
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      expected 2 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/lexer.rs:293:12
[INFO] [stdout]     |
[INFO] [stdout] 293 |     pub fn new(data: &'a str, file: PathBuf) -> Self {
[INFO] [stdout]     |            ^^^ -------------  -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/lexer.rs:847:22
[INFO] [stdout]     |
[INFO] [stdout] 847 |         let actual = Lexer::new(&test)
[INFO] [stdout]     |                      ^^^^^^^^^^ ----- supplied 1 argument
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      expected 2 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/lexer.rs:293:12
[INFO] [stdout]     |
[INFO] [stdout] 293 |     pub fn new(data: &'a str, file: PathBuf) -> Self {
[INFO] [stdout]     |            ^^^ -------------  -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/lexer.rs:866:22
[INFO] [stdout]     |
[INFO] [stdout] 866 |         let actual = Lexer::new(&test)
[INFO] [stdout]     |                      ^^^^^^^^^^ ----- supplied 1 argument
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      expected 2 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/lexer.rs:293:12
[INFO] [stdout]     |
[INFO] [stdout] 293 |     pub fn new(data: &'a str, file: PathBuf) -> Self {
[INFO] [stdout]     |            ^^^ -------------  -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/lexer.rs:888:22
[INFO] [stdout]     |
[INFO] [stdout] 888 |         let actual = Lexer::new(&test)
[INFO] [stdout]     |                      ^^^^^^^^^^ ----- supplied 1 argument
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      expected 2 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/lexer.rs:293:12
[INFO] [stdout]     |
[INFO] [stdout] 293 |     pub fn new(data: &'a str, file: PathBuf) -> Self {
[INFO] [stdout]     |            ^^^ -------------  -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/lexer.rs:912:22
[INFO] [stdout]     |
[INFO] [stdout] 912 |         let actual = Lexer::new(&test)
[INFO] [stdout]     |                      ^^^^^^^^^^ ----- supplied 1 argument
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      expected 2 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/lexer.rs:293:12
[INFO] [stdout]     |
[INFO] [stdout] 293 |     pub fn new(data: &'a str, file: PathBuf) -> Self {
[INFO] [stdout]     |            ^^^ -------------  -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/lexer.rs:933:22
[INFO] [stdout]     |
[INFO] [stdout] 933 |         let actual = Lexer::new(&test)
[INFO] [stdout]     |                      ^^^^^^^^^^ ----- supplied 1 argument
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      expected 2 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/lexer.rs:293:12
[INFO] [stdout]     |
[INFO] [stdout] 293 |     pub fn new(data: &'a str, file: PathBuf) -> Self {
[INFO] [stdout]     |            ^^^ -------------  -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/lexer.rs:950:22
[INFO] [stdout]     |
[INFO] [stdout] 950 |         let actual = Lexer::new(&test)
[INFO] [stdout]     |                      ^^^^^^^^^^ ----- supplied 1 argument
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      expected 2 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/lexer.rs:293:12
[INFO] [stdout]     |
[INFO] [stdout] 293 |     pub fn new(data: &'a str, file: PathBuf) -> Self {
[INFO] [stdout]     |            ^^^ -------------  -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/lexer.rs:966:22
[INFO] [stdout]     |
[INFO] [stdout] 966 |         let actual = Lexer::new(&test)
[INFO] [stdout]     |                      ^^^^^^^^^^ ----- supplied 1 argument
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      expected 2 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/lexer.rs:293:12
[INFO] [stdout]     |
[INFO] [stdout] 293 |     pub fn new(data: &'a str, file: PathBuf) -> Self {
[INFO] [stdout]     |            ^^^ -------------  -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/lexer.rs:985:22
[INFO] [stdout]     |
[INFO] [stdout] 985 |         let actual = Lexer::new(&test)
[INFO] [stdout]     |                      ^^^^^^^^^^ ----- supplied 1 argument
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      expected 2 arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/lexer.rs:293:12
[INFO] [stdout]     |
[INFO] [stdout] 293 |     pub fn new(data: &'a str, file: PathBuf) -> Self {
[INFO] [stdout]     |            ^^^ -------------  -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]     --> src/lexer.rs:1004:22
[INFO] [stdout]      |
[INFO] [stdout] 1004 |         let actual = Lexer::new(&test)
[INFO] [stdout]      |                      ^^^^^^^^^^ ----- supplied 1 argument
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      expected 2 arguments
[INFO] [stdout]      |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]     --> src/lexer.rs:293:12
[INFO] [stdout]      |
[INFO] [stdout] 293  |     pub fn new(data: &'a str, file: PathBuf) -> Self {
[INFO] [stdout]      |            ^^^ -------------  -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]     --> src/lexer.rs:1021:22
[INFO] [stdout]      |
[INFO] [stdout] 1021 |         let actual = Lexer::new(&test)
[INFO] [stdout]      |                      ^^^^^^^^^^ ----- supplied 1 argument
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      expected 2 arguments
[INFO] [stdout]      |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]     --> src/lexer.rs:293:12
[INFO] [stdout]      |
[INFO] [stdout] 293  |     pub fn new(data: &'a str, file: PathBuf) -> Self {
[INFO] [stdout]      |            ^^^ -------------  -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]     --> src/lexer.rs:1041:22
[INFO] [stdout]      |
[INFO] [stdout] 1041 |         let actual = Lexer::new(&test)
[INFO] [stdout]      |                      ^^^^^^^^^^ ----- supplied 1 argument
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      expected 2 arguments
[INFO] [stdout]      |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]     --> src/lexer.rs:293:12
[INFO] [stdout]      |
[INFO] [stdout] 293  |     pub fn new(data: &'a str, file: PathBuf) -> Self {
[INFO] [stdout]      |            ^^^ -------------  -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]     --> src/lexer.rs:1071:22
[INFO] [stdout]      |
[INFO] [stdout] 1071 |         let actual = Lexer::new(&test)
[INFO] [stdout]      |                      ^^^^^^^^^^ ----- supplied 1 argument
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      expected 2 arguments
[INFO] [stdout]      |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]     --> src/lexer.rs:293:12
[INFO] [stdout]      |
[INFO] [stdout] 293  |     pub fn new(data: &'a str, file: PathBuf) -> Self {
[INFO] [stdout]      |            ^^^ -------------  -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]     --> src/lexer.rs:1101:22
[INFO] [stdout]      |
[INFO] [stdout] 1101 |         let actual = Lexer::new(&test)
[INFO] [stdout]      |                      ^^^^^^^^^^ ----- supplied 1 argument
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      expected 2 arguments
[INFO] [stdout]      |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]     --> src/lexer.rs:293:12
[INFO] [stdout]      |
[INFO] [stdout] 293  |     pub fn new(data: &'a str, file: PathBuf) -> Self {
[INFO] [stdout]      |            ^^^ -------------  -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]     --> src/lexer.rs:1132:22
[INFO] [stdout]      |
[INFO] [stdout] 1132 |         let actual = Lexer::new(&test)
[INFO] [stdout]      |                      ^^^^^^^^^^ ----- supplied 1 argument
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      expected 2 arguments
[INFO] [stdout]      |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]     --> src/lexer.rs:293:12
[INFO] [stdout]      |
[INFO] [stdout] 293  |     pub fn new(data: &'a str, file: PathBuf) -> Self {
[INFO] [stdout]      |            ^^^ -------------  -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]     --> src/lexer.rs:1152:22
[INFO] [stdout]      |
[INFO] [stdout] 1152 |         let actual = Lexer::new(&test)
[INFO] [stdout]      |                      ^^^^^^^^^^ ----- supplied 1 argument
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      expected 2 arguments
[INFO] [stdout]      |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]     --> src/lexer.rs:293:12
[INFO] [stdout]      |
[INFO] [stdout] 293  |     pub fn new(data: &'a str, file: PathBuf) -> Self {
[INFO] [stdout]      |            ^^^ -------------  -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]     --> src/parser.rs:1370:24
[INFO] [stdout]      |
[INFO] [stdout] 1370 |         let t_stream = Lexer::new(&test.to_string())
[INFO] [stdout]      |                        ^^^^^^^^^^ ----------------- supplied 1 argument
[INFO] [stdout]      |                        |
[INFO] [stdout]      |                        expected 2 arguments
[INFO] [stdout]      |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]     --> src/lexer.rs:293:12
[INFO] [stdout]      |
[INFO] [stdout] 293  |     pub fn new(data: &'a str, file: PathBuf) -> Self {
[INFO] [stdout]      |            ^^^ -------------  -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]     --> src/parser.rs:1373:19
[INFO] [stdout]      |
[INFO] [stdout] 1373 |         let ast = Parser::new(t_stream).parse_expr().unwrap();
[INFO] [stdout]      |                   ^^^^^^^^^^^ -------- supplied 1 argument
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   expected 2 arguments
[INFO] [stdout]      |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]     --> src/parser.rs:87:12
[INFO] [stdout]      |
[INFO] [stdout] 87   |     pub fn new(i: Vec<Token>, file: &PathBuf) -> Self {
[INFO] [stdout]      |            ^^^ -------------  --------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]     --> src/parser.rs:1378:24
[INFO] [stdout]      |
[INFO] [stdout] 1378 |         let t_stream = Lexer::new(&test.to_string())
[INFO] [stdout]      |                        ^^^^^^^^^^ ----------------- supplied 1 argument
[INFO] [stdout]      |                        |
[INFO] [stdout]      |                        expected 2 arguments
[INFO] [stdout]      |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]     --> src/lexer.rs:293:12
[INFO] [stdout]      |
[INFO] [stdout] 293  |     pub fn new(data: &'a str, file: PathBuf) -> Self {
[INFO] [stdout]      |            ^^^ -------------  -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]     --> src/parser.rs:1382:9
[INFO] [stdout]      |
[INFO] [stdout] 1382 |         Parser::new(t_stream)
[INFO] [stdout]      |         ^^^^^^^^^^^ -------- supplied 1 argument
[INFO] [stdout]      |         |
[INFO] [stdout]      |         expected 2 arguments
[INFO] [stdout]      |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]     --> src/parser.rs:87:12
[INFO] [stdout]      |
[INFO] [stdout] 87   |     pub fn new(i: Vec<Token>, file: &PathBuf) -> Self {
[INFO] [stdout]      |            ^^^ -------------  --------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]     --> src/parser.rs:1388:24
[INFO] [stdout]      |
[INFO] [stdout] 1388 |         let t_stream = Lexer::new(&test.to_string())
[INFO] [stdout]      |                        ^^^^^^^^^^ ----------------- supplied 1 argument
[INFO] [stdout]      |                        |
[INFO] [stdout]      |                        expected 2 arguments
[INFO] [stdout]      |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]     --> src/lexer.rs:293:12
[INFO] [stdout]      |
[INFO] [stdout] 293  |     pub fn new(data: &'a str, file: PathBuf) -> Self {
[INFO] [stdout]      |            ^^^ -------------  -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]     --> src/parser.rs:1392:9
[INFO] [stdout]      |
[INFO] [stdout] 1392 |         Parser::new(t_stream).parse().unwrap()
[INFO] [stdout]      |         ^^^^^^^^^^^ -------- supplied 1 argument
[INFO] [stdout]      |         |
[INFO] [stdout]      |         expected 2 arguments
[INFO] [stdout]      |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]     --> src/parser.rs:87:12
[INFO] [stdout]      |
[INFO] [stdout] 87   |     pub fn new(i: Vec<Token>, file: &PathBuf) -> Self {
[INFO] [stdout]      |            ^^^ -------------  --------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]     --> src/parser.rs:1511:24
[INFO] [stdout]      |
[INFO] [stdout] 1511 |         let t_stream = Lexer::new(&test.to_string())
[INFO] [stdout]      |                        ^^^^^^^^^^ ----------------- supplied 1 argument
[INFO] [stdout]      |                        |
[INFO] [stdout]      |                        expected 2 arguments
[INFO] [stdout]      |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]     --> src/lexer.rs:293:12
[INFO] [stdout]      |
[INFO] [stdout] 293  |     pub fn new(data: &'a str, file: PathBuf) -> Self {
[INFO] [stdout]      |            ^^^ -------------  -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]     --> src/parser.rs:1514:22
[INFO] [stdout]      |
[INFO] [stdout] 1514 |         let actual = Parser::new(t_stream).parse_ty_specifier().unwrap();
[INFO] [stdout]      |                      ^^^^^^^^^^^ -------- supplied 1 argument
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      expected 2 arguments
[INFO] [stdout]      |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]     --> src/parser.rs:87:12
[INFO] [stdout]      |
[INFO] [stdout] 87   |     pub fn new(i: Vec<Token>, file: &PathBuf) -> Self {
[INFO] [stdout]      |            ^^^ -------------  --------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/parser.rs:1537:25
[INFO] [stdout]      |
[INFO] [stdout] 1537 |                 ret_ty: unit_ty(),
[INFO] [stdout]      |                         ^^^^^^^^^
[INFO] [stdout]      |                         |
[INFO] [stdout]      |                         expected struct `Box`, found struct `typer::Ty`
[INFO] [stdout]      |                         help: store this in the heap by calling `Box::new`: `Box::new(unit_ty())`
[INFO] [stdout]      |
[INFO] [stdout]      = note: expected struct `Box<typer::Ty>`
[INFO] [stdout]                 found struct `typer::Ty`
[INFO] [stdout]      = note: for more on the distinction between the stack and the heap, read https://doc.rust-lang.org/book/ch15-01-box.html, https://doc.rust-lang.org/rust-by-example/std/box.html, and https://doc.rust-lang.org/std/boxed/index.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `ast::Decl`
[INFO] [stdout]     --> src/parser.rs:1543:9
[INFO] [stdout]      |
[INFO] [stdout] 1543 |         assert_eq!(expected, actual);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         ast::Decl
[INFO] [stdout]      |         ast::Decl
[INFO] [stdout]      |
[INFO] [stdout]      = note: an implementation of `std::cmp::PartialEq` might be missing for `ast::Decl`
[INFO] [stdout]      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/parser.rs:1675:22
[INFO] [stdout]      |
[INFO] [stdout] 1675 |             methods: Vec::new(),
[INFO] [stdout]      |                      ^^^^^^^^^^ expected struct `std::collections::HashMap`, found struct `Vec`
[INFO] [stdout]      |
[INFO] [stdout]      = note: expected struct `std::collections::HashMap<String, ast::FnDecl>`
[INFO] [stdout]                 found struct `Vec<_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `ast::Decl`
[INFO] [stdout]     --> src/parser.rs:1677:9
[INFO] [stdout]      |
[INFO] [stdout] 1677 |         assert_eq!(actual, expected);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         ast::Decl
[INFO] [stdout]      |         ast::Decl
[INFO] [stdout]      |
[INFO] [stdout]      = note: an implementation of `std::cmp::PartialEq` might be missing for `ast::Decl`
[INFO] [stdout]      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 93 previous errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0277, E0308, E0369, E0559.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `stegi`
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] running `Command { std: "docker" "inspect" "c2147f9621419219dfc5515b208e553a6ea363653f33b5acc17a080d85447bd9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c2147f9621419219dfc5515b208e553a6ea363653f33b5acc17a080d85447bd9", kill_on_drop: false }`
[INFO] [stdout] c2147f9621419219dfc5515b208e553a6ea363653f33b5acc17a080d85447bd9
